<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta name="generator" content="JsDoc Toolkit" />
		
		<title>JsDoc Reference - nowjs</title>

		<style type="text/css">
			/* default.css */
body
{
	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
	width: 800px;
}

.header
{
	clear: both;
	background-color: #ccc;
	padding: 8px;
}

h1
{
	font-size: 150%;
	font-weight: bold;
	padding: 0;
	margin: 1em 0 0 .3em;
}

hr
{
	border: none 0;
	border-top: 1px solid #7F8FB1;
	height: 1px;
}

pre.code
{
	display: block;
	padding: 8px;
	border: 1px dashed #ccc;
}

#index
{
	margin-top: 24px;
	float: left;
	width: 160px;
	position: absolute;
	left: 8px;
	background-color: #F3F3F3;
	padding: 8px;
}

#content
{
	margin-left: 190px;
	width: 600px;
}

.classList
{
	list-style-type: none;
	padding: 0;
	margin: 0 0 0 8px;
	font-family: arial, sans-serif;
	font-size: 1em;
	overflow: auto;
}

.classList li
{
	padding: 0;
	margin: 0 0 8px 0;
}

.summaryTable { width: 100%; }

h1.classTitle
{
	font-size:170%;
	line-height:130%;
}

h2 { font-size: 110%; }
caption, div.sectionTitle
{
	background-color: #7F8FB1;
	color: #fff;
	font-size:130%;
	text-align: left;
	padding: 2px 6px 2px 6px;
	border: 1px #7F8FB1 solid;
}

div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }

.summaryTable td
{
	vertical-align: top;
	padding: 4px;
	border-bottom: 1px #7F8FB1 solid;
	border-right: 1px #7F8FB1 solid;
}

/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
	border-left: 1px #7F8FB1 solid;
	width: 140px;
	text-align: right;
}

td.attributes, .fixedFont
{
	line-height: 15px;
	color: #002EBE;
	font-family: "Courier New",Courier,monospace;
	font-size: 13px;
}

.summaryTable td.nameDescription
{
	text-align: left;
	font-size: 13px;
	line-height: 15px;
}

.summaryTable td.nameDescription, .description
{
	line-height: 15px;
	padding: 4px;
	padding-left: 4px;
}

.summaryTable { margin-bottom: 8px; }

ul.inheritsList
{
	list-style: square;
	margin-left: 20px;
	padding-left: 0;
}

.detailList {
	margin-left: 20px; 
	line-height: 15px;
}
.detailList dt { margin-left: 20px; }

.detailList .heading
{
	font-weight: bold;
	padding-bottom: 6px;
	margin-left: 0;
}

.light, td.attributes, .light a:link, .light a:visited
{
	color: #777;
	font-style: italic;
}

.fineprint
{
	text-align: right;
	font-size: 10px;
}
		</style>
	</head>

	<body>
<!-- ============================== header ================================= -->	
		<!-- begin static/header.html -->
		<div id="header">
</div>
		<!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
		<div id="index">
			<!-- begin publish.classesIndex -->
			<div align="center"><a href="../index.html">Class Index</a>
| <a href="../files.html">File Index</a></div>
<hr />
<h2>Classes</h2>
<ul class="classList">
	
	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
	
	<li><a href="../symbols/Group.html">Group</a></li>
	
	<li><a href="../symbols/Group%23now.html">Group#now</a></li>
	
	<li><a href="../symbols/nowjs.html">nowjs</a></li>
	
	<li><a href="../symbols/User.html">User</a></li>
	
	<li><a href="../symbols/User%23now.html">User#now</a></li>
	
	<li><a href="../symbols/User%23user.html">User#user</a></li>
	
</ul>
<hr />
			<!-- end publish.classesIndex -->
		</div>
		
		<div id="content">
<!-- ============================== class title ============================ -->
			<h1 class="classTitle">
				
				Class nowjs
			</h1>

<!-- ============================== class summary ========================== -->			
			<p class="description">
				
				
			
				
				
				
					<br /><i>Defined in: </i> <a href="../symbols/src/now_lib_now.js.html">now.js</a>.
				
			</p>

<!-- ============================== constructor summary ==================== -->			
			
			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class nowjs.">
				<caption>Class Summary</caption>
				<thead>
					<tr>
						<th scope="col">Constructor Attributes</th>
						<th scope="col">Constructor Name and Description</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td class="attributes">&nbsp;</td>
						<td class="nameDescription" >
							<div class="fixedFont">
								<b><a href="../symbols/nowjs.html#constructor">nowjs</a></b>()
							</div>
							<div class="description">The object returned by require('now').</div>
						</td>
					</tr>
				</tbody>
			</table>
			

<!-- ============================== properties summary ===================== -->
			

<!-- ============================== methods summary ======================== -->
			
				
				
				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class nowjs.">
					<caption>Method Summary</caption>
					<thead>
						<tr>
							<th scope="col">Method Attributes</th>
							<th scope="col">Method Name and Description</th>
						</tr>
					</thead>
					<tbody>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#getClient">getClient</a></b>(id, callback)
								</div>
								<div class="description">Retrieves a user from the given client ID and executes
of several actions in the context of that user.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#getGroup">getGroup</a></b>(name)
								</div>
								<div class="description">Retrieves and returns a group from its name, creating it if
necessary.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#getGroups">getGroups</a></b>(callback)
								</div>
								<div class="description">Retrieves a list (represented in Javascript as an
array) of all groups that have been created and passes it in to the
supplied callback.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">nowjs.<b><a href="../symbols/nowjs.html#.initialize">initialize</a></b>(server, options)
								</div>
								<div class="description">Returns a reference to the `everyone` object.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#removeGroup">removeGroup</a></b>(name)
								</div>
								<div class="description">Removes all traces of a group.</div>
							</td>
						</tr>
					
					</tbody>
				</table>
				
				
				
			
<!-- ============================== events summary ======================== -->
			
				
				
				<table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class nowjs.">
					<caption>Event Summary</caption>
					<thead>
						<tr>
							<th scope="col">Event Attributes</th>
							<th scope="col">Event Name and Description</th>
						</tr>
					</thead>
					<tbody>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:connect">connect</a></b>()
								</div>
								<div class="description">Called in the context of a user when the server first
receives a message from the given user.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:disconnect">disconnect</a></b>()
								</div>
								<div class="description">Called in the context of a user who has just
disconnected from the server.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:groupdel">groupdel</a></b>(group)
								</div>
								<div class="description">Called when deleting a variable from all members of
the group specified by this function's argument.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:grouprv">grouprv</a></b>(group)
								</div>
								<div class="description">Called when replacing the value of a variable for all
members of the group specified by this function's argument.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:newgroup">newgroup</a></b>(group)
								</div>
								<div class="description">Called when a new group is created.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><b><a href="../symbols/nowjs.html#event:removegroup">removegroup</a></b>(group)
								</div>
								<div class="description">Called when a group is removed.</div>
							</td>
						</tr>
					
					</tbody>
				</table>
				
				
				
			

<!-- ============================== constructor details ==================== -->		
			
			<div class="details"><a name="constructor"> </a>
				<div class="sectionTitle">
					Class Detail
				</div>
				
				<div class="fixedFont">
						<b>nowjs</b>()
				</div>
				
				<div class="description">
					The object returned by require('now').
					
				</div>
				
				
				
				
					
					
					
					
					
					
					

			</div>
			

<!-- ============================== field details ========================== -->		
			

<!-- ============================== method details ========================= -->		
			
				<div class="sectionTitle">
					Method Detail
				</div>
				
					<a name="getClient"> </a>
					<div class="fixedFont">
					
					
					<b>getClient</b>(id, callback)
					
					</div>
					<div class="description">
						Retrieves a user from the given client ID and executes
of several actions in the context of that user.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.getClient('1234567890' function () {
  this.now.receiveMessage('SERVER', 'Anything is possible with NowJS.');
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>id</b>
									
								</dt>
								<dd>The client ID associated with the target user.</dd>
							
								<dt>
									<span class="light fixedFont">{Function}</span> <b>callback</b>
									
								</dt>
								<dd>Takes no arguments. Called in the
context of the user corresponding to the given id.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="getGroup"> </a>
					<div class="fixedFont">
					
					<span class="light">{<a href="../symbols/Group.html">Group</a>}</span>
					<b>getGroup</b>(name)
					
					</div>
					<div class="description">
						Retrieves and returns a group from its name, creating it if
necessary.
						
						
					</div>
					
					
					
					<pre class="code">var new_group = nowjs.getGroup('a new group');</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>name</b>
									
								</dt>
								<dd>The name of the group to be retrieved.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="getGroups"> </a>
					<div class="fixedFont">
					
					
					<b>getGroups</b>(callback)
					
					</div>
					<div class="description">
						Retrieves a list (represented in Javascript as an
array) of all groups that have been created and passes it in to the
supplied callback.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('connect', function () {
  var self = this;
  nowjs.getGroups(function (groups) {
    nowjs.getGroup(groups[Math.floor(groups.length * Math.random())]).addUser(self);
  });
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{Function}</span> <b>callback</b>
									
								</dt>
								<dd>Takes one argument, an array of all
groups that have been created.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name=".initialize"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{<a href="../symbols/Group.html">Group</a>}</span>
					<span class="light">nowjs.</span><b>initialize</b>(server, options)
					
					</div>
					<div class="description">
						Returns a reference to the `everyone` object. The
options object, if supplied, will be automatically merged with the
default values.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.initialize(server, {clientWrite: false, socketio: {'log level': 2});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{httpServer}</span> <b>server</b>
									
								</dt>
								<dd>A Node.js http server (such as the one
available in the http module or a module like Express) on which to
run Now.</dd>
							
								<dt>
									<span class="light fixedFont">{Object}</span> <b>options</b>
									<i>Optional, Default: {"clientWrite" : true, "autoHost" : true,
  "host" : undefined, "port" : undefined, "socketio" : {},
  "closureTimeout : 30000, "client : {},  "scope" : "window"}</i>
								</dt>
								<dd></dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="removeGroup"> </a>
					<div class="fixedFont">
					
					<span class="light">{<a href="../symbols/Group.html">Group</a>}</span>
					<b>removeGroup</b>(name)
					
					</div>
					<div class="description">
						Removes all traces of a group.
						
						
					</div>
					
					
					
					<pre class="code">var new_group = nowjs.getGroup('a new group');</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>name</b>
									
								</dt>
								<dd>The name of the group to be retrieved.</dd>
							
							</dl>
						
						
						
						
						
						
						

					
				
			
			
<!-- ============================== event details ========================= -->		
			
				<div class="sectionTitle">
					Event Detail
				</div>
				
					<a name="event:connect"> </a>
					<div class="fixedFont">
					
					
					<b>connect</b>()
					
					</div>
					<div class="description">
						Called in the context of a user when the server first
receives a message from the given user.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('connect', function () {
  this.now.receiveMessage('SERVER', 'Welcome to NowJS.');
});</pre>
					
					
					
						
						
						
						
						
						
						

					<hr />
				
					<a name="event:disconnect"> </a>
					<div class="fixedFont">
					
					
					<b>disconnect</b>()
					
					</div>
					<div class="description">
						Called in the context of a user who has just
disconnected from the server.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('disconnect, function () {
  delete myArray[this.user.clientId];
});</pre>
					
					
					
						
						
						
						
						
						
						

					<hr />
				
					<a name="event:groupdel"> </a>
					<div class="fixedFont">
					
					
					<b>groupdel</b>(group)
					
					</div>
					<div class="description">
						Called when deleting a variable from all members of
the group specified by this function's argument.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('groupdel', function (group) {
  if (group.groupName === 'everyone') {
    console.log('Everyone now no longer possesses ' + group.fqn);
  }
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{<a href="../symbols/Group.html">Group</a>}</span> <b>group</b>
									
								</dt>
								<dd>Actually not quite a group; this parameter
refers to a clone of the group in question that also carries the
fully qualified name (fqn) of the variable to delete. Access the
fqn via `group.fqn`.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="event:grouprv"> </a>
					<div class="fixedFont">
					
					
					<b>grouprv</b>(group)
					
					</div>
					<div class="description">
						Called when replacing the value of a variable for all
members of the group specified by this function's argument.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('grouprv', function (group) {
  if (group.groupName === 'everyone') {
    console.log('Everyone now sees ' + group.fqn + ' as ' + group.val);
  }
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{<a href="../symbols/Group.html">Group</a>}</span> <b>group</b>
									
								</dt>
								<dd>Similar to nowjs#groupdel, this is also
a clone of the actual group. In addition to the fully qualified
name, this clone also possesses a serialized form of its target
value, accessible via `group.val`.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="event:newgroup"> </a>
					<div class="fixedFont">
					
					
					<b>newgroup</b>(group)
					
					</div>
					<div class="description">
						Called when a new group is created.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('newgroup', function (group) {
  console.log('You have successfully created the group `' + group.groupName + '`');
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{<a href="../symbols/Group.html">Group</a>}</span> <b>group</b>
									
								</dt>
								<dd>The group created by <a href="../symbols/nowjs.html#getGroup">nowjs#getGroup</a>.</dd>
							
							</dl>
						
						
						
						
						
						
						

					<hr />
				
					<a name="event:removegroup"> </a>
					<div class="fixedFont">
					
					
					<b>removegroup</b>(group)
					
					</div>
					<div class="description">
						Called when a group is removed.
						
						
					</div>
					
					
					
					<pre class="code">nowjs.on('removegroup', function (group) {
  console.log('Group `' + group.groupName + '` eliminated from existence.');
});</pre>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{<a href="../symbols/Group.html">Group</a>}</span> <b>group</b>
									
								</dt>
								<dd>The group removed by <a href="../symbols/nowjs.html#getGroup">nowjs#getGroup</a>.</dd>
							
							</dl>
						
						
						
						
						
						
						

					
				
			
			
			<hr />
		</div>

		
<!-- ============================== footer ================================= -->
		<div class="fineprint" style="clear:both">
			
			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Tue Jan 03 2012 15:53:12 GMT-0800 (PST)
		</div>
	</body>
</html>
